home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_emacs.idb / usr / freeware / info / gnus-7.z / gnus-7
Encoding:
GNU Info File  |  1998-10-28  |  48.6 KB  |  1,332 lines

  1. This is Info file ../info/gnus, produced by Makeinfo-1.63 from the
  2. input file gnus.texi.
  3.  
  4.    This file documents Gnus, the GNU Emacs newsreader.
  5.  
  6.    Copyright (C) 1995,96 Free Software Foundation, Inc.
  7.  
  8.    Permission is granted to make and distribute verbatim copies of this
  9. manual provided the copyright notice and this permission notice are
  10. preserved on all copies.
  11.  
  12.    Permission is granted to copy and distribute modified versions of
  13. this manual under the conditions for verbatim copying, provided also
  14. that the entire resulting derived work is distributed under the terms
  15. of a permission notice identical to this one.
  16.  
  17.    Permission is granted to copy and distribute translations of this
  18. manual into another language, under the above conditions for modified
  19. versions.
  20.  
  21. 
  22. File: gnus,  Node: Process/Prefix,  Next: Interactive,  Up: Various
  23.  
  24. Process/Prefix
  25. ==============
  26.  
  27.    Many functions, among them functions for moving, decoding and saving
  28. articles, use what is known as the "Process/Prefix convention".
  29.  
  30.    This is a method for figuring out what articles that the user wants
  31. the command to be performed on.
  32.  
  33.    It goes like this:
  34.  
  35.    If the numeric prefix is N, perform the operation on the next N
  36. articles, starting with the current one.  If the numeric prefix is
  37. negative, perform the operation on the previous N articles, starting
  38. with the current one.
  39.  
  40.    If `transient-mark-mode' in non-`nil' and the region is active, all
  41. articles in the region will be worked upon.
  42.  
  43.    If there is no numeric prefix, but some articles are marked with the
  44. process mark, perform the operation on the articles that are marked with
  45. the process mark.
  46.  
  47.    If there is neither a numeric prefix nor any articles marked with the
  48. process mark, just perform the operation on the current article.
  49.  
  50.    Quite simple, really, but it needs to be made clear so that surprises
  51. are avoided.
  52.  
  53.    One thing that seems to shock & horrify lots of people is that, for
  54. instance, `3 d' does exactly the same as `d' `d' `d'.  Since each `d'
  55. (which marks the current article as read) by default goes to the next
  56. unread article after marking, this means that `3 d' will mark the next
  57. three unread articles as read, no matter what the summary buffer looks
  58. like.  Set `gnus-summary-goto-unread' to `nil' for a more
  59. straightforward action.
  60.  
  61. 
  62. File: gnus,  Node: Interactive,  Next: Formatting Variables,  Prev: Process/Prefix,  Up: Various
  63.  
  64. Interactive
  65. ===========
  66.  
  67. `gnus-novice-user'
  68.      If this variable is non-`nil', you are either a newcomer to the
  69.      World of Usenet, or you are very cautious, which is a nice thing
  70.      to be, really.  You will be given questions of the type "Are you
  71.      sure you want to do this?" before doing anything dangerous.  This
  72.      is `t' by default.
  73.  
  74. `gnus-expert-user'
  75.      If this variable is non-`nil', you will never ever be asked any
  76.      questions by Gnus.  It will simply assume you know what you're
  77.      doing, no matter how strange.
  78.  
  79. `gnus-interactive-catchup'
  80.      Require confirmation before catching up a group if non-`nil'.  It
  81.      is `t' by default.
  82.  
  83. `gnus-interactive-exit'
  84.      Require confirmation before exiting Gnus.  This variable is `t' by
  85.      default.
  86.  
  87. 
  88. File: gnus,  Node: Formatting Variables,  Next: Windows Configuration,  Prev: Interactive,  Up: Various
  89.  
  90. Formatting Variables
  91. ====================
  92.  
  93.    Throughout this manual you've probably noticed lots of variables that
  94. are called things like `gnus-group-line-format' and
  95. `gnus-summary-mode-line-format'.  These control how Gnus is to output
  96. lines in the various buffers.  There's quite a lot of them.
  97. Fortunately, they all use the same syntax, so there's not that much to
  98. be annoyed by.
  99.  
  100.    Here's an example format spec (from the group buffer): `%M%S%5y:
  101. %(%g%)\n'.  We see that it is indeed extremely ugly, and that there are
  102. lots of percentages everywhere.
  103.  
  104.    Each `%' element will be replaced by some string or other when the
  105. buffer in question is generated.  `%5y' means "insert the `y' spec, and
  106. pad with spaces to get a 5-character field".  Just like a normal format
  107. spec, almost.
  108.  
  109.    You can also say `%6,4y', which means that the field will never be
  110. more than 6 characters wide and never less than 4 characters wide.
  111.  
  112.    There are also specs for highlighting, and these are shared by all
  113. the format variables.  Text inside the `%(' and `%)' specifiers will
  114. get the special `mouse-face' property set, which means that it will be
  115. highlighted (with `gnus-mouse-face') when you put the mouse pointer
  116. over it.
  117.  
  118.    Text inside the `%[' and `%]' specifiers will have their normal
  119. faces set using `gnus-face-0', which is `bold' by default.  If you say
  120. `%1[' instead, you'll get `gnus-face-1' instead, and so on.  Create as
  121. many faces as you wish.  The same goes for the `mouse-face' specs--you
  122. can say `%3(hello%)' to have `hello' mouse-highlighted with
  123. `gnus-mouse-face-3'.
  124.  
  125.    Here's an alternative recipe for the group buffer:
  126.  
  127.      ;; Create three face types.
  128.      (setq gnus-face-1 'bold)
  129.      (setq gnus-face-3 'italic)
  130.      
  131.      ;; We want the article count to be in
  132.      ;; a bold and green face.  So we create
  133.      ;; a new face called `my-green-bold'.
  134.      (copy-face 'bold 'my-green-bold)
  135.      ;; Set the color.
  136.      (set-face-foreground 'my-green-bold "ForestGreen")
  137.      (setq gnus-face-2 'my-green-bold)
  138.      
  139.      ;; Set the new & fancy format.
  140.      (setq gnus-group-line-format
  141.            "%M%S%3{%5y%}%2[:%] %(%1{%g%}%)\n")
  142.  
  143.    I'm sure you'll be able to use this scheme to create totally
  144. unreadable and extremely vulgar displays.  Have fun!
  145.  
  146.    Currently Gnus uses the following formatting variables:
  147. `gnus-group-line-format', `gnus-summary-line-format',
  148. `gnus-server-line-format', `gnus-topic-line-format',
  149. `gnus-group-mode-line-format', `gnus-summary-mode-line-format',
  150. `gnus-article-mode-line-format', `gnus-server-mode-line-format'.
  151.  
  152.    Note that the `%(' specs (and friends) do not make any sense on the
  153. mode-line variables.
  154.  
  155.    All these format variables can also be arbitrary elisp forms.  In
  156. that case, they will be `eval'ed to insert the required lines.
  157.  
  158.    Gnus includes a command to help you while creating your own format
  159. specs.  `M-x gnus-update-format' will `eval' the current form, update
  160. the spec in question and pop you to a buffer where you can examine the
  161. resulting lisp code to be run to generate the line.
  162.  
  163. 
  164. File: gnus,  Node: Windows Configuration,  Next: Compilation,  Prev: Formatting Variables,  Up: Various
  165.  
  166. Windows Configuration
  167. =====================
  168.  
  169.    No, there's nothing here about X, so be quiet.
  170.  
  171.    If `gnus-use-full-window' non-`nil', Gnus will delete all other
  172. windows and occupy the entire Emacs screen by itself.  It is `t' by
  173. default.
  174.  
  175.    `gnus-buffer-configuration' describes how much space each Gnus
  176. buffer should be given.  Here's an excerpt of this variable:
  177.  
  178.      ((group (vertical 1.0 (group 1.0 point)
  179.                            (if gnus-carpal (group-carpal 4))))
  180.       (article (vertical 1.0 (summary 0.25 point)
  181.                              (article 1.0))))
  182.  
  183.    This is an alist.  The "key" is a symbol that names some action or
  184. other.  For instance, when displaying the group buffer, the window
  185. configuration function will use `group' as the key.  A full list of
  186. possible names is listed below.
  187.  
  188.    The "value" (i. e., the "split") says how much space each buffer
  189. should occupy.  To take the `article' split as an example -
  190.  
  191.      (article (vertical 1.0 (summary 0.25 point)
  192.                             (article 1.0)))
  193.  
  194.    This "split" says that the summary buffer should occupy 25% of upper
  195. half of the screen, and that it is placed over the article buffer.  As
  196. you may have noticed, 100% + 25% is actually 125% (yup, I saw y'all
  197. reaching for that calculator there).  However, the special number `1.0'
  198. is used to signal that this buffer should soak up all the rest of the
  199. space available after the rest of the buffers have taken whatever they
  200. need.  There should be only one buffer with the `1.0' size spec per
  201. split.
  202.  
  203.    Point will be put in the buffer that has the optional third element
  204. `point'.
  205.  
  206.    Here's a more complicated example:
  207.  
  208.      (article (vertical 1.0 (group 4)
  209.                             (summary 0.25 point)
  210.                             (if gnus-carpal (summary-carpal 4))
  211.                             (article 1.0)))
  212.  
  213.    If the size spec is an integer instead of a floating point number,
  214. then that number will be used to say how many lines a buffer should
  215. occupy, not a percentage.
  216.  
  217.    If the "split" looks like something that can be `eval'ed (to be
  218. precise--if the `car' of the split is a function or a subr), this split
  219. will be `eval'ed.  If the result is non-`nil', it will be used as a
  220. split.  This means that there will be three buffers if `gnus-carpal' is
  221. `nil', and four buffers if `gnus-carpal' is non-`nil'.
  222.  
  223.    Not complicated enough for you?  Well, try this on for size:
  224.  
  225.      (article (horizontal 1.0
  226.                   (vertical 0.5
  227.                       (group 1.0)
  228.                       (gnus-carpal 4))
  229.                   (vertical 1.0
  230.                       (summary 0.25 point)
  231.                       (summary-carpal 4)
  232.                       (article 1.0))))
  233.  
  234.    Whoops.  Two buffers with the mystery 100% tag.  And what's that
  235. `horizontal' thingie?
  236.  
  237.    If the first element in one of the split is `horizontal', Gnus will
  238. split the window horizontally, giving you two windows side-by-side.
  239. Inside each of these strips you may carry on all you like in the normal
  240. fashion.  The number following `horizontal' says what percentage of the
  241. screen is to be given to this strip.
  242.  
  243.    For each split, there *must* be one element that has the 100% tag.
  244. The splitting is never accurate, and this buffer will eat any leftover
  245. lines from the splits.
  246.  
  247.    To be slightly more formal, here's a definition of what a legal split
  248. may look like:
  249.  
  250.      split       = frame | horizontal | vertical | buffer | form
  251.      frame       = "(frame " size *split ")"
  252.      horizontal  = "(horizontal " size *split ")"
  253.      vertical    = "(vertical " size *split ")"
  254.      buffer      = "(" buffer-name " " size *[ "point" ] ")"
  255.      size        = number | frame-params
  256.      buffer-name = group | article | summary ...
  257.  
  258.    The limitations are that the `frame' split can only appear as the
  259. top-level split.  FORM should be an Emacs Lisp form that should return
  260. a valid split.  We see that each split is fully recursive, and may
  261. contain any number of `vertical' and `horizontal' splits.
  262.  
  263.    Finding the right sizes can be a bit complicated.  No window may be
  264. less than `gnus-window-min-height' (default 2) characters high, and all
  265. windows must be at least `gnus-window-min-width' (default 1) characters
  266. wide.  Gnus will try to enforce this before applying the splits.  If
  267. you want to use the normal Emacs window width/height limit, you can
  268. just set these two variables to `nil'.
  269.  
  270.    If you're not familiar with Emacs terminology, `horizontal' and
  271. `vertical' splits may work the opposite way of what you'd expect.
  272. Windows inside a `horizontal' split are shown side-by-side, and windows
  273. within a `vertical' split are shown above each other.
  274.  
  275.    If you want to experiment with window placement, a good tip is to
  276. call `gnus-configure-frame' directly with a split.  This is the function
  277. that does all the real work when splitting buffers.  Below is a pretty
  278. nonsensical configuration with 5 windows; two for the group buffer and
  279. three for the article buffer.  (I said it was nonsensical.)  If you
  280. `eval' the statement below, you can get an idea of how that would look
  281. straight away, without going through the normal Gnus channels.  Play
  282. with it until you're satisfied, and then use `gnus-add-configuration'
  283. to add your new creation to the buffer configuration list.
  284.  
  285.      (gnus-configure-frame
  286.       '(horizontal 1.0
  287.          (vertical 10
  288.            (group 1.0)
  289.            (article 0.3 point))
  290.          (vertical 1.0
  291.            (article 1.0)
  292.            (horizontal 4
  293.              (group 1.0)
  294.              (article 10)))))
  295.  
  296.    You might want to have several frames as well.  No prob--just use the
  297. `frame' split:
  298.  
  299.      (gnus-configure-frame
  300.       '(frame 1.0
  301.               (vertical 1.0
  302.                         (summary 0.25 point)
  303.                         (article 1.0))
  304.               (vertical ((height . 5) (width . 15)
  305.                          (user-position . t)
  306.                          (left . -1) (top . 1))
  307.                         (picon 1.0))))
  308.  
  309.    This split will result in the familiar summary/article window
  310. configuration in the first (or "main") frame, while a small additional
  311. frame will be created where picons will be shown.  As you can see,
  312. instead of the normal `1.0' top-level spec, each additional split
  313. should have a frame parameter alist as the size spec.  *Note Frame
  314. Parameters: (elisp)Frame Parameters.
  315.  
  316.    Here's a list of all possible keys for `gnus-buffer-configuration':
  317.  
  318.    `group', `summary', `article', `server', `browse', `group-mail',
  319. `summary-mail', `summary-reply', `info', `summary-faq', `edit-group',
  320. `edit-server', `reply', `reply-yank', `followup', `followup-yank',
  321. `edit-score'.
  322.  
  323.    Since the `gnus-buffer-configuration' variable is so long and
  324. complicated, there's a function you can use to ease changing the config
  325. of a single setting: `gnus-add-configuration'.  If, for instance, you
  326. want to change the `article' setting, you could say:
  327.  
  328.      (gnus-add-configuration
  329.       '(article (vertical 1.0
  330.                     (group 4)
  331.                     (summary .25 point)
  332.                     (article 1.0))))
  333.  
  334.    You'd typically stick these `gnus-add-configuration' calls in your
  335. `.gnus' file or in some startup hook - they should be run after Gnus
  336. has been loaded.
  337.  
  338. 
  339. File: gnus,  Node: Compilation,  Next: Mode Lines,  Prev: Windows Configuration,  Up: Various
  340.  
  341. Compilation
  342. ===========
  343.  
  344.    Remember all those line format specification variables?
  345. `gnus-summary-line-format', `gnus-group-line-format', and so on.  Now,
  346. Gnus will of course heed whatever these variables are, but,
  347. unfortunately, changing them will mean a quite significant slow-down.
  348. (The default values of these variables have byte-compiled functions
  349. associated with them, while the user-generated versions do not, of
  350. course.)
  351.  
  352.    To help with this, you can run `M-x gnus-compile' after you've
  353. fiddled around with the variables and feel that you're (kind of)
  354. satisfied.  This will result in the new specs being byte-compiled, and
  355. you'll get top speed again.
  356.  
  357. 
  358. File: gnus,  Node: Mode Lines,  Next: Highlighting and Menus,  Prev: Compilation,  Up: Various
  359.  
  360. Mode Lines
  361. ==========
  362.  
  363.    `gnus-updated-mode-lines' says what buffers should keep their mode
  364. lines updated.  It is a list of symbols.  Supported symbols include
  365. `group', `article', `summary', `server', `browse', and `tree'.  If the
  366. corresponding symbol is present, Gnus will keep that mode line updated
  367. with information that may be pertinent.  If this variable is `nil',
  368. screen refresh may be quicker.
  369.  
  370.    By default, Gnus displays information on the current article in the
  371. mode lines of the summary and article buffers.  The information Gnus
  372. wishes to display (eg. the subject of the article) is often longer than
  373. the mode lines, and therefore have to be cut off at some point.  The
  374. `gnus-mode-non-string-length' variable says how long the other elements
  375. on the line is (i.e., the non-info part).  If you put additional
  376. elements on the mode line (eg. a clock), you should modify this
  377. variable:
  378.  
  379.      (add-hook 'display-time-hook
  380.                (lambda () (setq gnus-mode-non-string-length
  381.                                 (+ 21
  382.                                    (if line-number-mode 5 0)
  383.                                    (if column-number-mode 4 0)
  384.                                    (length display-time-string)))))
  385.  
  386.    If this variable is `nil' (which is the default), the mode line
  387. strings won't be chopped off, and they won't be padded either.
  388.  
  389. 
  390. File: gnus,  Node: Highlighting and Menus,  Next: Buttons,  Prev: Mode Lines,  Up: Various
  391.  
  392. Highlighting and Menus
  393. ======================
  394.  
  395.    The `gnus-visual' variable controls most of the prettifying Gnus
  396. aspects.  If `nil', Gnus won't attempt to create menus or use fancy
  397. colors or fonts.  This will also inhibit loading the `gnus-vis.el' file.
  398.  
  399.    This variable can be a list of visual properties that are enabled.
  400. The following elements are legal, and are all included by default:
  401.  
  402. `group-highlight'
  403.      Do highlights in the group buffer.
  404.  
  405. `summary-highlight'
  406.      Do highlights in the summary buffer.
  407.  
  408. `article-highlight'
  409.      Do highlights in the article buffer.
  410.  
  411. `highlight'
  412.      Turn on highlighting in all buffers.
  413.  
  414. `group-menu'
  415.      Create menus in the group buffer.
  416.  
  417. `summary-menu'
  418.      Create menus in the summary buffers.
  419.  
  420. `article-menu'
  421.      Create menus in the article buffer.
  422.  
  423. `browse-menu'
  424.      Create menus in the browse buffer.
  425.  
  426. `server-menu'
  427.      Create menus in the server buffer.
  428.  
  429. `score-menu'
  430.      Create menus in the score buffers.
  431.  
  432. `menu'
  433.      Create menus in all buffers.
  434.  
  435.    So if you only want highlighting in the article buffer and menus in
  436. all buffers, you could say something like:
  437.  
  438.      (setq gnus-visual '(article-highlight menu))
  439.  
  440.    If you want only highlighting and no menus whatsoever, you'd say:
  441.  
  442.      (setq gnus-visual '(highlight))
  443.  
  444.    If `gnus-visual' is `t', highlighting and menus will be used in all
  445. Gnus buffers.
  446.  
  447.    Other general variables that influence the look of all buffers
  448. include:
  449.  
  450. `gnus-mouse-face'
  451.      This is the face (i.e., font) used for mouse highlighting in Gnus.
  452.      No mouse highlights will be done if `gnus-visual' is `nil'.
  453.  
  454. `gnus-display-type'
  455.      This variable is symbol indicating the display type Emacs is
  456.      running under.  The symbol should be one of `color', `grayscale' or
  457.      `mono'.  If Gnus guesses this display attribute wrongly, either set
  458.      this variable in your `~/.emacs' or set the resource
  459.      `Emacs.displayType' in your `~/.Xdefaults'.
  460.  
  461. `gnus-background-mode'
  462.      This is a symbol indicating the Emacs background brightness.  The
  463.      symbol should be one of `light' or `dark'.  If Gnus guesses this
  464.      frame attribute wrongly, either set this variable in your
  465.      `~/.emacs' or set the resource `Emacs.backgroundMode' in your
  466.      `~/.Xdefaults'.  `gnus-display-type'.
  467.  
  468.    There are hooks associated with the creation of all the different
  469. menus:
  470.  
  471. `gnus-article-menu-hook'
  472.      Hook called after creating the article mode menu.
  473.  
  474. `gnus-group-menu-hook'
  475.      Hook called after creating the group mode menu.
  476.  
  477. `gnus-summary-menu-hook'
  478.      Hook called after creating the summary mode menu.
  479.  
  480. `gnus-server-menu-hook'
  481.      Hook called after creating the server mode menu.
  482.  
  483. `gnus-browse-menu-hook'
  484.      Hook called after creating the browse mode menu.
  485.  
  486. `gnus-score-menu-hook'
  487.      Hook called after creating the score mode menu.
  488.  
  489. 
  490. File: gnus,  Node: Buttons,  Next: Daemons,  Prev: Highlighting and Menus,  Up: Various
  491.  
  492. Buttons
  493. =======
  494.  
  495.    Those new-fangled "mouse" contraptions is very popular with the
  496. young, hep kids who don't want to learn the proper way to do things
  497. these days.  Why, I remember way back in the summer of '89, when I was
  498. using Emacs on a Tops 20 system.  Three hundred users on one single
  499. machine, and every user was running Simula compilers.  Bah!
  500.  
  501.    Right.
  502.  
  503.    Well, you can make Gnus display bufferfuls of buttons you can click
  504. to do anything by setting `gnus-carpal' to `t'.  Pretty simple, really.
  505. Tell the chiropractor I sent you.
  506.  
  507. `gnus-carpal-mode-hook'
  508.      Hook run in all carpal mode buffers.
  509.  
  510. `gnus-carpal-button-face'
  511.      Face used on buttons.
  512.  
  513. `gnus-carpal-header-face'
  514.      Face used on carpal buffer headers.
  515.  
  516. `gnus-carpal-group-buffer-buttons'
  517.      Buttons in the group buffer.
  518.  
  519. `gnus-carpal-summary-buffer-buttons'
  520.      Buttons in the summary buffer.
  521.  
  522. `gnus-carpal-server-buffer-buttons'
  523.      Buttons in the server buffer.
  524.  
  525. `gnus-carpal-browse-buffer-buttons'
  526.      Buttons in the browse buffer.
  527.  
  528.    All the `buttons' variables are lists.  The elements in these list
  529. is either a cons cell where the car contains a text to be displayed and
  530. the cdr contains a function symbol, or a simple string.
  531.  
  532. 
  533. File: gnus,  Node: Daemons,  Next: NoCeM,  Prev: Buttons,  Up: Various
  534.  
  535. Daemons
  536. =======
  537.  
  538.    Gnus, being larger than any program ever written (allegedly), does
  539. lots of strange stuff that you may wish to have done while you're not
  540. present.  For instance, you may want it to check for new mail once in a
  541. while.  Or you may want it to close down all connections to all servers
  542. when you leave Emacs idle.  And stuff like that.
  543.  
  544.    Gnus will let you do stuff like that by defining various "handlers".
  545. Each handler consists of three elements:  A FUNCTION, a TIME, and an
  546. IDLE parameter.
  547.  
  548.    Here's an example of a handler that closes connections when Emacs has
  549. been idle for thirty minutes:
  550.  
  551.      (gnus-demon-close-connections nil 30)
  552.  
  553.    Here's a handler that scans for PGP headers every hour when Emacs is
  554. idle:
  555.  
  556.      (gnus-demon-scan-pgp 60 t)
  557.  
  558.    This TIME parameter and than IDLE parameter works together in a
  559. strange, but wonderful fashion.  Basically, if IDLE is `nil', then the
  560. function will be called every TIME minutes.
  561.  
  562.    If IDLE is `t', then the function will be called after TIME minutes
  563. only if Emacs is idle.  So if Emacs is never idle, the function will
  564. never be called.  But once Emacs goes idle, the function will be called
  565. every TIME minutes.
  566.  
  567.    If IDLE is a number and TIME is a number, the function will be
  568. called every TIME minutes only when Emacs has been idle for IDLE
  569. minutes.
  570.  
  571.    If IDLE is a number and TIME is `nil', the function will be called
  572. once every time Emacs has been idle for IDLE minutes.
  573.  
  574.    And if TIME is a string, it should look like `07:31', and the
  575. function will then be called once every day somewhere near that time.
  576. Modified by the IDLE parameter, of course.
  577.  
  578.    (When I say "minute" here, I really mean `gnus-demon-timestep'
  579. seconds.  This is `60' by default.  If you change that variable, all
  580. the timings in the handlers will be affected.)
  581.  
  582.    To set the whole thing in motion, though, you have to set
  583. `gnus-use-demon' to `t'.
  584.  
  585.    So, if you want to add a handler, you could put something like this
  586. in your `.gnus' file:
  587.  
  588.      (gnus-demon-add-handler 'gnus-demon-close-connections nil 30)
  589.  
  590.    Some ready-made functions to do this has been created:
  591. `gnus-demon-add-nocem', `gnus-demon-add-disconnection', and
  592. `gnus-demon-add-scanmail'.  Just put those functions in your `.gnus' if
  593. you want those abilities.
  594.  
  595.    If you add handlers to `gnus-demon-handlers' directly, you should
  596. run `gnus-demon-init' to make the changes take hold.  To cancel all
  597. daemons, you can use the `gnus-demon-cancel' function.
  598.  
  599.    Note that adding daemons can be pretty naughty if you overdo it.
  600. Adding functions that scan all news and mail from all servers every two
  601. seconds is a sure-fire way of getting booted off any respectable
  602. system.  So behave.
  603.  
  604. 
  605. File: gnus,  Node: NoCeM,  Next: Picons,  Prev: Daemons,  Up: Various
  606.  
  607. NoCeM
  608. =====
  609.  
  610.    "Spamming" is posting the same article lots and lots of times.
  611. Spamming is bad.  Spamming is evil.
  612.  
  613.    Spamming is usually canceled within a day or so by various
  614. anti-spamming agencies.  These agencies usually also send out "NoCeM"
  615. messages.  NoCeM is pronounced "no see-'em", and means what the name
  616. implies--these are messages that make the offending articles, like, go
  617. away.
  618.  
  619.    What use are these NoCeM messages if the articles are canceled
  620. anyway?  Some sites do not honor cancel messages and some sites just
  621. honor cancels from a select few people.  Then you may wish to make use
  622. of the NoCeM messages, which are distributed in the `alt.nocem.misc'
  623. newsgroup.
  624.  
  625.    Gnus can read and parse the messages in this group automatically, and
  626. this will make spam disappear.
  627.  
  628.    There are some variables to customize, of course:
  629.  
  630. `gnus-use-nocem'
  631.      Set this variable to `t' to set the ball rolling.  It is `nil' by
  632.      default.
  633.  
  634. `gnus-nocem-groups'
  635.      Gnus will look for NoCeM messages in the groups in this list.  The
  636.      default is `("alt.nocem.misc" "news.admin.net-abuse.announce")'.
  637.  
  638. `gnus-nocem-issuers'
  639.      There are many people issuing NoCeM messages.  This list says what
  640.      people you want to listen to.  The default is `("Automoose-1"
  641.      "clewis@ferret.ocunix.on.ca;" "jem@xpat.com;"
  642.      "red@redpoll.mrfs.oh.us (Richard E. Depew)")'; fine, upstanding
  643.      citizens all of them.
  644.  
  645.      Known despammers that you can put in this list include:
  646.  
  647.     `clewis@ferret.ocunix.on.ca;'
  648.           Chris Lewis--Major Canadian despammer who has probably
  649.           canceled more usenet abuse than anybody else.
  650.  
  651.     `Automoose-1'
  652.           The CancelMoose[tm] on autopilot.  The CancelMoose[tm] is
  653.           reputed to be Norwegian, and was the person(s) who invented
  654.           NoCeM.
  655.  
  656.     `jem@xpat.com;'
  657.           Jem--Korean despammer who is getting very busy these days.
  658.  
  659.     `red@redpoll.mrfs.oh.us (Richard E. Depew)'
  660.           Richard E. Depew--lone American despammer.  He mostly cancels
  661.           binary postings to non-binary groups and removes spews
  662.           (regurgitated articles).
  663.  
  664.      You do not have to heed NoCeM messages from all these people--just
  665.      the ones you want to listen to.
  666.  
  667. `gnus-nocem-directory'
  668.      This is where Gnus will store its NoCeM cache files.  The default
  669.      is `~/News/NoCeM/'.
  670.  
  671. `gnus-nocem-expiry-wait'
  672.      The number of days before removing old NoCeM entries from the
  673.      cache.  The default is 15.  If you make it shorter Gnus will be
  674.      faster, but you might then see old spam.
  675.  
  676. 
  677. File: gnus,  Node: Picons,  Next: Various Various,  Prev: NoCeM,  Up: Various
  678.  
  679. Picons
  680. ======
  681.  
  682.    So...  You want to slow down your news reader even more!  This is a
  683. good way to do so.  Its also a great way to impress people staring over
  684. your shoulder as you read news.
  685.  
  686. * Menu:
  687.  
  688. * Picon Basics::           What are picons and How do I get them.
  689. * Picon Requirements::     Don't go further if you aren't using XEmacs.
  690. * Easy Picons::            Displaying Picons - the easy way.
  691. * Hard Picons::            The way you should do it.  You'll learn something.
  692. * Picon Configuration::    Other variables you can trash/tweak/munge/play with.
  693.  
  694. 
  695. File: gnus,  Node: Picon Basics,  Next: Picon Requirements,  Up: Picons
  696.  
  697. Picon Basics
  698. ------------
  699.  
  700.    What are Picons?  To quote directly from the Picons Web site
  701. (`http://www.cs.indiana.edu/picons/ftp/index.html'):
  702.  
  703.      "Picons" is short for "personal icons".  They're small,
  704.      constrained images used to represent users and domains on the net,
  705.      organized into databases so that the appropriate image for a given
  706.      e-mail address can be found.  Besides users and domains, there are
  707.      picon databases for Usenet newsgroups and weather forecasts.  The
  708.      picons are in either monochrome `XBM' format or color `XPM' and
  709.      `GIF' formats.
  710.  
  711.    Please see the above mentioned web site for instructions on obtaining
  712. and installing the picons databases, or the following ftp site:
  713. `http://www.cs.indiana.edu/picons/ftp/index.html'.
  714.  
  715.    Gnus expects picons to be installed into a location pointed to by
  716. `gnus-picons-database'.
  717.  
  718. 
  719. File: gnus,  Node: Picon Requirements,  Next: Easy Picons,  Prev: Picon Basics,  Up: Picons
  720.  
  721. Picon Requirements
  722. ------------------
  723.  
  724.    To use have Gnus display Picons for you, you must be running XEmacs
  725. 19.13 or greater since all other versions of Emacs aren't yet able to
  726. display images.
  727.  
  728.    Additionally, you must have `xpm' support compiled into XEmacs.
  729.  
  730.    If you want to display faces from `X-Face' headers, you must have
  731. the `netpbm' utilities installed, or munge the
  732. `gnus-picons-convert-x-face' variable to use something else.
  733.  
  734. 
  735. File: gnus,  Node: Easy Picons,  Next: Hard Picons,  Prev: Picon Requirements,  Up: Picons
  736.  
  737. Easy Picons
  738. -----------
  739.  
  740.    To enable displaying picons, simply put the following line in your
  741. `~/.gnus' file and start Gnus.
  742.  
  743.      (setq gnus-use-picons t)
  744.      (add-hook 'gnus-article-display-hook 'gnus-article-display-picons t)
  745.      (add-hook 'gnus-summary-prepare-hook 'gnus-group-display-picons t)
  746.      (add-hook 'gnus-article-display-hook 'gnus-picons-article-display-x-face)
  747.  
  748. 
  749. File: gnus,  Node: Hard Picons,  Next: Picon Configuration,  Prev: Easy Picons,  Up: Picons
  750.  
  751. Hard Picons
  752. -----------
  753.  
  754.    Gnus can display picons for you as you enter and leave groups and
  755. articles.  It knows how to interact with three sections of the picons
  756. database.  Namely, it can display the picons newsgroup pictures,
  757. author's face picture(s), and the authors domain.  To enable this
  758. feature, you need to first decide where to display them.
  759.  
  760. `gnus-picons-display-where'
  761.      Where the picon images should be displayed.  It is `picons' by
  762.      default (which by default maps to the buffer `*Picons*').  Other
  763.      valid places could be `article', `summary', or `"*scratch*"' for
  764.      all I care.  Just make sure that you've made the buffer visible
  765.      using the standard Gnus window configuration routines - *Note
  766.      Windows Configuration::.
  767.  
  768.    Note: If you set `gnus-use-picons' to `t', it will set up your
  769. window configuration for you to include the `picons' buffer.
  770.  
  771.    Now that you've made that decision, you need to add the following
  772. functions to the appropriate hooks so these pictures will get displayed
  773. at the right time.
  774.  
  775. `gnus-article-display-picons'
  776.      Looks up and display the picons for the author and the author's
  777.      domain in the `gnus-picons-display-where' buffer.  Should be added
  778.      to the `gnus-article-display-hook'.
  779.  
  780. `gnus-group-display-picons'
  781.      Displays picons representing the current group.  This function
  782.      should be added to the `gnus-summary-prepare-hook' or to the
  783.      `gnus-article-display-hook' if `gnus-picons-display-where' is set
  784.      to `article'.
  785.  
  786. `gnus-picons-article-display-x-face'
  787.      Decodes and displays the X-Face header if present.  This function
  788.      should be added to `gnus-article-display-hook'.
  789.  
  790.    Note:  You must append them to the hook, so make sure to specify 't'
  791. to the append flag of `add-hook':
  792.  
  793.      (add-hook 'gnus-article-display-hook 'gnus-article-display-picons t)
  794.  
  795. 
  796. File: gnus,  Node: Picon Configuration,  Prev: Hard Picons,  Up: Picons
  797.  
  798. Picon Configuration
  799. -------------------
  800.  
  801.    The following variables offer further control over how things are
  802. done, where things are located, and other useless stuff you really
  803. don't need to worry about.
  804.  
  805. `gnus-picons-database'
  806.      The location of the picons database.  Should point to a directory
  807.      containing the `news', `domains', `users' (and so on)
  808.      subdirectories.  Defaults to `/usr/local/faces'.
  809.  
  810. `gnus-picons-news-directory'
  811.      Sub-directory of the faces database containing the icons for
  812.      newsgroups.
  813.  
  814. `gnus-picons-user-directories'
  815.      List of subdirectories to search in `gnus-picons-database' for user
  816.      faces.  Defaults to `("local" "users" "usenix" "misc/MISC")'.
  817.  
  818. `gnus-picons-domain-directories'
  819.      List of subdirectories to search in `gnus-picons-database' for
  820.      domain name faces.  Defaults to `("domains")'.  Some people may
  821.      want to add `unknown' to this list.
  822.  
  823. `gnus-picons-convert-x-face'
  824.      The command to use to convert the `X-Face' header to an X bitmap
  825.      (`xbm').  Defaults to `(format "{ echo '/* Width=48, Height=48
  826.      */'; uncompface; } | icontopbm | pbmtoxbm > %s"
  827.      gnus-picons-x-face-file-name)'
  828.  
  829. `gnus-picons-x-face-file-name'
  830.      Names a temporary file to store the `X-Face' bitmap in.  Defaults
  831.      to `(format "/tmp/picon-xface.%s.xbm" (user-login-name))'.
  832.  
  833. `gnus-picons-buffer'
  834.      The name of the buffer that `picons' points to.  Defaults to
  835.      `*Icon Buffer*'.
  836.  
  837. 
  838. File: gnus,  Node: Various Various,  Prev: Picons,  Up: Various
  839.  
  840. Various Various
  841. ===============
  842.  
  843. `gnus-verbose'
  844.      This variable is an integer between zero and ten.  The higher the
  845.      value, the more messages will be displayed.  If this variable is
  846.      zero, Gnus will never flash any messages, if it is seven (which is
  847.      the default), most important messages will be shown, and if it is
  848.      ten, Gnus won't ever shut up, but will flash so many messages it
  849.      will make your head swim.
  850.  
  851. `gnus-verbose-backends'
  852.      This variable works the same way as `gnus-verbose', but it applies
  853.      to the Gnus backends instead of Gnus proper.
  854.  
  855. `nnheader-max-head-length'
  856.      When the backends read straight heads of articles, they all try to
  857.      read as little as possible.  This variable (default `4096')
  858.      specifies the absolute max length the backends will try to read
  859.      before giving up on finding a separator line between the head and
  860.      the body.  If this variable is `nil', there is no upper read
  861.      bound.  If it is `t', the backends won't try to read the articles
  862.      piece by piece, but read the entire articles.  This makes sense
  863.      with some versions of `ange-ftp'.
  864.  
  865. `nnheader-file-name-translation-alist'
  866.      This is an alist that says how to translate characters in file
  867.      names.  For instance, if `:' is illegal as a file character in
  868.      file names on your system (you OS/2 user you), you could say
  869.      something like:
  870.  
  871.           (setq nnheader-file-name-translation-alist
  872.                 '((?: . ?_)))
  873.  
  874.      In fact, this is the default value for this variable on OS/2 and MS
  875.      Windows (phooey) systems.
  876.  
  877. `gnus-hidden-properties'
  878.      This is a list of properties to use to hide "invisible" text.  It
  879.      is `(invisible t intangible t)' by default on most systems, which
  880.      makes invisible text invisible and intangible.
  881.  
  882. `gnus-parse-headers-hook'
  883.      A hook called before parsing headers.  It can be used, for
  884.      instance, to gather statistics on the headers fetched, or perhaps
  885.      you'd like to prune some headers.  I don't see why you'd want
  886.      that, though.
  887.  
  888. 
  889. File: gnus,  Node: The End,  Next: Appendices,  Prev: Various,  Up: Top
  890.  
  891. The End
  892. *******
  893.  
  894.    Well, that's the manual--you can get on with your life now.  Keep in
  895. touch.  Say hello to your cats from me.
  896.  
  897.    My *ghod*--I just can't stand goodbyes.  Sniffle.
  898.  
  899.    Ol' Charles Reznikoff said it pretty well, so I leave the floor to
  900. him:
  901.  
  902.      *Te Deum*
  903.  
  904.      Not because of victories
  905.      I sing,
  906.      having none,
  907.      but for the common sunshine,
  908.      the breeze,
  909.      the largess of the spring.
  910.  
  911.      Not for victory
  912.      but for the day's work done
  913.      as well as I was able;
  914.      not for a seat upon the dais
  915.      but at the common table.
  916.  
  917. 
  918. File: gnus,  Node: Appendices,  Next: Index,  Prev: The End,  Up: Top
  919.  
  920. Appendices
  921. **********
  922.  
  923. * Menu:
  924.  
  925. * History::                        How Gnus got where it is today.
  926. * Terminology::                    We use really difficult, like, words here.
  927. * Customization::                  Tailoring Gnus to your needs.
  928. * Troubleshooting::                What you might try if things do not work.
  929. * A Programmers Guide to Gnus::    Rilly, rilly technical stuff.
  930. * Emacs for Heathens::             A short introduction to Emacsian terms.
  931. * Frequently Asked Questions::     A question-and-answer session.
  932.  
  933. 
  934. File: gnus,  Node: History,  Next: Terminology,  Up: Appendices
  935.  
  936. History
  937. =======
  938.  
  939.    GNUS was written by Masanobu UMEDA.  When autumn crept up in '94,
  940. Lars Magne Ingebrigtsen grew bored and decided to rewrite Gnus.
  941.  
  942.    If you want to investigate the person responsible for this outrage,
  943. you can point your (feh!) web browser to
  944. `http://www.ifi.uio.no/~larsi/'.  This is also the primary distribution
  945. point for the new and spiffy versions of Gnus, and is known as The Site
  946. That Destroys Newsrcs And Drives People Mad.
  947.  
  948.    During the first extended alpha period of development, the new Gnus
  949. was called "(ding) Gnus".  "(ding)", is, of course, short for "ding is
  950. not Gnus", which is a total and utter lie, but who cares?  (Besides,
  951. the "Gnus" in this abbreviation should probably be pronounced "news" as
  952. UMEDA intended, which makes it a more appropriate name, don't you
  953. think?)
  954.  
  955.    In any case, after spending all that energy on coming up with a new
  956. and spunky name, we decided that the name was *too* spunky, so we
  957. renamed it back again to "Gnus".  But in mixed case.  "Gnus" vs.
  958. "GNUS".  New vs. old.
  959.  
  960.    The first "proper" release of Gnus 5 was done in November 1995 when
  961. it was included in the Emacs 19.30 distribution.
  962.  
  963.    In May 1996 the next Gnus generation (aka.  "September Gnus") was
  964. released under the name "Gnus 5.2".
  965.  
  966. * Menu:
  967.  
  968. * Why?::                What's the point of Gnus?
  969. * Compatibility::       Just how compatible is Gnus with GNUS?
  970. * Conformity::          Gnus tries to conform to all standards.
  971. * Emacsen::             Gnus can be run on a few modern Emacsen.
  972. * Contributors::        Oodles of people.
  973. * New Features::        Pointers to some of the new stuff in Gnus.
  974. * Newest Features::     Features so new that they haven't been written yet.
  975.  
  976. 
  977. File: gnus,  Node: Why?,  Next: Compatibility,  Up: History
  978.  
  979. Why?
  980. ----
  981.  
  982.    What's the point of Gnus?
  983.  
  984.    I want to provide a "rad", "happening", "way cool" and "hep"
  985. newsreader, that lets you do anything you can think of.  That was my
  986. original motivation, but while working on Gnus, it has become clear to
  987. me that this generation of newsreaders really belong in the stone age.
  988. Newsreaders haven't developed much since the infancy of the net.  If the
  989. volume continues to rise with the current rate of increase, all current
  990. newsreaders will be pretty much useless.  How do you deal with
  991. newsgroups that have thousands of new articles each day?  How do you
  992. keep track of millions of people who post?
  993.  
  994.    Gnus offers no real solutions to these questions, but I would very
  995. much like to see Gnus being used as a testing ground for new methods of
  996. reading and fetching news.  Expanding on UMEDA-san's wise decision to
  997. separate the newsreader from the backends, Gnus now offers a simple
  998. interface for anybody who wants to write new backends for fetching mail
  999. and news from different sources.  I have added hooks for customizations
  1000. everywhere I could imagine useful.  By doing so, I'm inviting every one
  1001. of you to explore and invent.
  1002.  
  1003.    May Gnus never be complete. `C-u 100 M-x hail-emacs'.
  1004.  
  1005. 
  1006. File: gnus,  Node: Compatibility,  Next: Conformity,  Prev: Why?,  Up: History
  1007.  
  1008. Compatibility
  1009. -------------
  1010.  
  1011.    Gnus was designed to be fully compatible with GNUS.  Almost all key
  1012. bindings have been kept.  More key bindings have been added, of course,
  1013. but only in one or two obscure cases have old bindings been changed.
  1014.  
  1015.    Our motto is:
  1016.                          In a cloud bones of steel.
  1017.  
  1018.  
  1019.    All commands have kept their names.  Some internal functions have
  1020. changed their names.
  1021.  
  1022.    The `gnus-uu' package has changed drastically. *note Decoding
  1023. Articles::..
  1024.  
  1025.    One major compatibility question is the presence of several summary
  1026. buffers.  All variables that are relevant while reading a group are
  1027. buffer-local to the summary buffer they belong in.  Although many
  1028. important variables have their values copied into their global
  1029. counterparts whenever a command is executed in the summary buffer, this
  1030. change might lead to incorrect values being used unless you are careful.
  1031.  
  1032.    All code that relies on knowledge of GNUS internals will probably
  1033. fail.  To take two examples: Sorting `gnus-newsrc-alist' (or changing
  1034. it in any way, as a matter of fact) is strictly verboten.  Gnus
  1035. maintains a hash table that points to the entries in this alist (which
  1036. speeds up many functions), and changing the alist directly will lead to
  1037. peculiar results.
  1038.  
  1039.    Old hilit19 code does not work at all.  In fact, you should probably
  1040. remove all hilit code from all Gnus hooks (`gnus-group-prepare-hook'
  1041. and `gnus-summary-prepare-hook').  Gnus provides various integrated
  1042. functions for highlighting.  These are faster and more accurate.  To
  1043. make life easier for everybody, Gnus will by default remove all hilit
  1044. calls from all hilit hooks.  Uncleanliness!  Away!
  1045.  
  1046.    Packages like `expire-kill' will no longer work.  As a matter of
  1047. fact, you should probably remove all old GNUS packages (and other code)
  1048. when you start using Gnus.  More likely than not, Gnus already does
  1049. what you have written code to make GNUS do.  (Snicker.)
  1050.  
  1051.    Even though old methods of doing things are still supported, only the
  1052. new methods are documented in this manual.  If you detect a new method
  1053. of doing something while reading this manual, that does not mean you
  1054. have to stop doing it the old way.
  1055.  
  1056.    Gnus understands all GNUS startup files.
  1057.  
  1058.    Overall, a casual user who hasn't written much code that depends on
  1059. GNUS internals should suffer no problems.  If problems occur, please
  1060. let me know by issuing that magic command `M-x gnus-bug'.
  1061.  
  1062. 
  1063. File: gnus,  Node: Conformity,  Next: Emacsen,  Prev: Compatibility,  Up: History
  1064.  
  1065. Conformity
  1066. ----------
  1067.  
  1068.    No rebels without a clue here, ma'am.  We conform to all standards
  1069. known to (wo)man.  Except for those standards and/or conventions we
  1070. disagree with, of course.
  1071.  
  1072. *RFC 822*
  1073.      There are no known breaches of this standard.
  1074.  
  1075. *RFC 1036*
  1076.      There are no known breaches of this standard, either.
  1077.  
  1078. *Usenet Seal of Approval*
  1079.      Gnus hasn't been formally through the Seal process, but I have read
  1080.      through the Seal text and I think Gnus would pass.
  1081.  
  1082. *Son-of-RFC 1036*
  1083.      We do have some breaches to this one.
  1084.  
  1085.     *MIME*
  1086.           Gnus does no MIME handling, and this standard-to-be seems to
  1087.           think that MIME is the bees' knees, so we have major breakage
  1088.           here.
  1089.  
  1090.     *X-Newsreader*
  1091.           This is considered to be a "vanity header", while I consider
  1092.           it to be consumer information.  After seeing so many badly
  1093.           formatted articles coming from `tin' and `Netscape' I know
  1094.           not to use either of those for posting articles.  I would not
  1095.           have known that if it wasn't for the `X-Newsreader' header.
  1096.  
  1097.     *References*
  1098.           Gnus does line breaking on this header.  I infer from RFC1036
  1099.           that being conservative in what you output is not creating
  1100.           5000-character lines, so it seems like a good idea to me.
  1101.           However, this standard-to-be says that whitespace in the
  1102.           `References' header is to be preserved, so...  It doesn't
  1103.           matter one way or the other to Gnus, so if somebody tells me
  1104.           what The Way is, I'll change it.  Or not.
  1105.  
  1106.    If you ever notice Gnus acting non-compliantly with regards to the
  1107. texts mentioned above, don't hesitate to drop a note to Gnus Towers and
  1108. let us know.
  1109.  
  1110. 
  1111. File: gnus,  Node: Emacsen,  Next: Contributors,  Prev: Conformity,  Up: History
  1112.  
  1113. Emacsen
  1114. -------
  1115.  
  1116.    Gnus should work on :
  1117.  
  1118.    * Emacs 19.30 and up.
  1119.  
  1120.    * XEmacs 19.13 and up.
  1121.  
  1122.    * Mule versions based on Emacs 19.30 and up.
  1123.  
  1124.    Gnus will absolutely not work on any Emacsen older than that.  Not
  1125. reliably, at least.
  1126.  
  1127.    There are some vague differences between Gnus on the various
  1128. platforms:
  1129.  
  1130.    * The mouse-face on Gnus lines under Emacs and Mule is delimited to
  1131.      certain parts of the lines while they cover the entire line under
  1132.      XEmacs.
  1133.  
  1134.    * The same with current-article marking--XEmacs puts an underline
  1135.      under the entire summary line while Emacs and Mule are nicer and
  1136.      kinder.
  1137.  
  1138.    * XEmacs features more graphics--a logo and a toolbar.
  1139.  
  1140.    * Citation highlighting us better under Emacs and Mule than under
  1141.      XEmacs.
  1142.  
  1143.    * Emacs 19.26-19.28 have tangible hidden headers, which can be a bit
  1144.      confusing.
  1145.  
  1146. 
  1147. File: gnus,  Node: Contributors,  Next: New Features,  Prev: Emacsen,  Up: History
  1148.  
  1149. Contributors
  1150. ------------
  1151.  
  1152.    The new Gnus version couldn't have been done without the help of all
  1153. the people on the (ding) mailing list.  Every day for over a year I have
  1154. gotten billions of nice bug reports from them, filling me with joy,
  1155. every single one of them.  Smooches.  The people on the list have been
  1156. tried beyond endurance, what with my "oh, that's a neat idea <type
  1157. type>, yup, I'll release it right away <ship off> no wait, that doesn't
  1158. work at all <type type>, yup, I'll ship that one off right away <ship
  1159. off> no, wait, that absolutely does not work" policy for releases.
  1160. Micro$oft--bah.  Amateurs.  I'm *much* worse.  (Or is that "worser"?
  1161. "much worser"?  "worsest"?)
  1162.  
  1163.    I would like to take this opportunity to thank the Academy for...
  1164. oops, wrong show.
  1165.  
  1166.    * Masanobu UMEDA The writer of the original GNUS.
  1167.  
  1168.    * Per Abrahamsen Custom, scoring, highlighting and SOUP code (as
  1169.      well as numerous other things).
  1170.  
  1171.    * Luis Fernandes Design and graphics.
  1172.  
  1173.    * Wes Hardaker `gnus-picon.el' and the manual section on "picons"
  1174.      (*note Picons::.).
  1175.  
  1176.    * Brad Miller `gnus-gl.el' and the GroupLens manual section (*note
  1177.      GroupLens::.).
  1178.  
  1179.    * Sudish Joseph Innumerable bug fixes.
  1180.  
  1181.    * Ilja Weis `gnus-topic.el'.
  1182.  
  1183.    * Steven L. Baur Lots and lots of bugs detections and fixes.
  1184.  
  1185.    * Vladimir Alexiev The refcard and reference booklets.
  1186.  
  1187.    * Felix Lee & JWZ I stole some pieces from the XGnus distribution by
  1188.      Felix Lee and JWZ.
  1189.  
  1190.    * Scott Byer `nnfolder.el' enhancements & rewrite.
  1191.  
  1192.    * Peter Mutsaers Orphan article scoring code.
  1193.  
  1194.    * Ken Raeburn POP mail support.
  1195.  
  1196.    * Hallvard B Furuseth Various bits and pieces, especially dealing
  1197.      with .newsrc files.
  1198.  
  1199.    * Brian Edmonds `gnus-bbdb.el'.
  1200.  
  1201.    * Ricardo Nassif and Mark Borges Proof-reading.
  1202.  
  1203.    * Kevin Davidson Came up with the name "ding", so blame him.
  1204.  
  1205.    Peter Arius, Stainless Steel Rat, Ulrik Dickow, Jack Vinson, Daniel
  1206. Quinlan, Frank D. Cringle, Geoffrey T. Dairiki, Fabrice Popineau and
  1207. Andrew Eskilsson have all contributed code and suggestions.
  1208.  
  1209. 
  1210. File: gnus,  Node: New Features,  Next: Newest Features,  Prev: Contributors,  Up: History
  1211.  
  1212. New Features
  1213. ------------
  1214.  
  1215.    * The look of all buffers can be changed by setting format-like
  1216.      variables (*note Group Buffer Format::. and *note Summary Buffer
  1217.      Format::.).
  1218.  
  1219.    * Local spool and several NNTP servers can be used at once (*note
  1220.      Select Methods::.).
  1221.  
  1222.    * You can combine groups into virtual groups (*note Virtual
  1223.      Groups::.).
  1224.  
  1225.    * You can read a number of different mail formats (*note Getting
  1226.      Mail::.).  All the mail backends implement a convenient mail
  1227.      expiry scheme (*note Expiring Mail::.).
  1228.  
  1229.    * Gnus can use various strategies for gathering threads that have
  1230.      lost their roots (thereby gathering loose sub-threads into one
  1231.      thread) or it can go back and retrieve enough headers to build a
  1232.      complete thread (*note Customizing Threading::.).
  1233.  
  1234.    * Killed groups can be displayed in the group buffer, and you can
  1235.      read them as well (*note Listing Groups::.).
  1236.  
  1237.    * Gnus can do partial group updates--you do not have to retrieve the
  1238.      entire active file just to check for new articles in a few groups
  1239.      (*note The Active File::.).
  1240.  
  1241.    * Gnus implements a sliding scale of subscribedness to groups (*note
  1242.      Group Levels::.).
  1243.  
  1244.    * You can score articles according to any number of criteria (*note
  1245.      Scoring::.).  You can even get Gnus to find out how to score
  1246.      articles for you (*note Adaptive Scoring::.).
  1247.  
  1248.    * Gnus maintains a dribble buffer that is auto-saved the normal Emacs
  1249.      manner, so it should be difficult to lose much data on what you
  1250.      have read if your machine should go down (*note Auto Save::.).
  1251.  
  1252.    * Gnus now has its own startup file (`.gnus') to avoid cluttering up
  1253.      the `.emacs' file.
  1254.  
  1255.    * You can set the process mark on both groups and articles and
  1256.      perform operations on all the marked items (*note
  1257.      Process/Prefix::.).
  1258.  
  1259.    * You can grep through a subset of groups and create a group from the
  1260.      results (*note Kibozed Groups::.).
  1261.  
  1262.    * You can list subsets of groups according to, well, anything (*note
  1263.      Listing Groups::.).
  1264.  
  1265.    * You can browse foreign servers and subscribe to groups from those
  1266.      servers (*note Browse Foreign Server::.).
  1267.  
  1268.    * Gnus can fetch articles asynchronously on a second connection to
  1269.      the server (*note Asynchronous Fetching::.).
  1270.  
  1271.    * You can cache articles locally (*note Article Caching::.).
  1272.  
  1273.    * The uudecode functions have been expanded and generalized (*note
  1274.      Decoding Articles::.).
  1275.  
  1276.    * You can still post uuencoded articles, which was a little-known
  1277.      feature of GNUS' past (*note Uuencoding and Posting::.).
  1278.  
  1279.    * Fetching parents (and other articles) now actually works without
  1280.      glitches (*note Finding the Parent::.).
  1281.  
  1282.    * Gnus can fetch FAQs and group descriptions (*note Group
  1283.      Information::.).
  1284.  
  1285.    * Digests (and other files) can be used as the basis for groups
  1286.      (*note Document Groups::.).
  1287.  
  1288.    * Articles can be highlighted and customized (*note Customizing
  1289.      Articles::.).
  1290.  
  1291.    * URLs and other external references can be buttonized (*note
  1292.      Article Buttons::.).
  1293.  
  1294.    * You can do lots of strange stuff with the Gnus window & frame
  1295.      configuration (*note Windows Configuration::.).
  1296.  
  1297.    * You can click on buttons instead of using the keyboard (*note
  1298.      Buttons::.).
  1299.  
  1300.    * Gnus can use NoCeM files to weed out spam (*note NoCeM::.).
  1301.  
  1302.    This is, of course, just a *short* overview of the *most* important
  1303. new features.  No, really.  There are tons more.  Yes, we have feeping
  1304. creaturism in full effect, but nothing too gratuitous, I would hope.
  1305.  
  1306. 
  1307. File: gnus,  Node: Newest Features,  Prev: New Features,  Up: History
  1308.  
  1309. Newest Features
  1310. ---------------
  1311.  
  1312.    Also known as the "todo list".  Sure to be implemented before the
  1313. next millennium.
  1314.  
  1315.    Be afraid.  Be very afraid.
  1316.  
  1317.    * Native MIME support is something that should be done.
  1318.  
  1319.    * A better and simpler method for specifying mail composing methods.
  1320.  
  1321.    * Allow posting through mail-to-news gateways.
  1322.  
  1323.    * Really do unbinhexing.
  1324.  
  1325.    And much, much, much more.  There is more to come than has already
  1326. been implemented.  (But that's always true, isn't it?)
  1327.  
  1328.    `<URL:http://www.ifi.uio.no/~larsi/sgnus/todo>' is where the actual
  1329. up-to-the-second todo list is located, so if you're really curious, you
  1330. could point your Web browser over that-a-way.
  1331.  
  1332.